# 实现一个简化版本的人生重开模拟器~
# 1.游戏开始的时候,设置初始属性~(颜值,体质,治理,家境)
# 2.开始游戏,随机生成性别和出生点~
# 3.针对每一年,都生成人生的经历~(依靠一定的随机因素 + 当前的角色属性)
import random   # pycharm有一个功能,能够自动导入当前使用的模块~
import sys
import time

# 打印欢迎界面
print('+---------------------------------------+')
print('|                                       |')
print('|         花有重开日,人无再少年            |')
print('|                                       |')
print('|         欢迎来到人生重开模拟器           |')
print('|                                       |')
print('+---------------------------------------+')

# 设置初始属性
# 颜值,体质,家境,智力~ 总和不能超过20
# 每一项取值都是 1 ~ 10 之间

# 使用循环,让玩家在输入错误的时候,可以重新输入
while True:
    print("请设置初始属性(可用点数总数为:20)")
    face = int(input("请输入颜值(1~10): "))
    strong = int(input("请输入体质(1~10): "))
    iq = int(input("请输入智力(1~10): "))
    home = int(input("请输入家境(1~10): "))
# 通过条件语句,对于用户输入的属性做出校验检查
    if face < 1 or face > 10:
        print("颜值设置有误")
        continue
    if strong < 1 or strong > 10:
        print("体质设置有误")
        continue
    if iq < 1 or iq > 10:
        print("智力设置有误")
        continue
    if home < 1 or home > 10:
        print("家境设置有误")
        continue
    if face + strong + iq + home >20:
        print("总的属性和超过二十,设置有误!")
    print("初始化属性输入完毕!")
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    break

# 生成角色的性别
# 使用 random.randint(beg,end),就能生成[beg,end] 随机整数
point = random.randint(1, 6)
if point % 2 == 1:
    gender = 'boy'
    print('你是个男孩')
else:
    gender = 'girl'
    print('你是个女孩')

# 在python中,如果想引入其他模块,需要先使用import语句,把模板的名字给"导入"进来

# 设置角色的出生点(家境 + 随机数)
# 家境 10 第一档,带来属性加成
# 家境 7~9 第二档,也会带来属性加成
# 家境 4~6 第三档,少数属性加成
# 家境 1~3 第四档,会扣属性

# 为了简单,就直接生成 1~3 的随机数
point = random.randint(1, 3)
if home == 10:
    # 第一档
    print("你出生在帝都,你的父母是高官政要")
    home += 1
    face += 1
    iq += 1
elif 7 <= home <= 9:
    # 第二档
    if point == 1:
        print("你出生在大城市,父母是公务员")
        face += 2
    elif point == 2:
        print("你出生在大城市,父母是企业高官")
        home += 2
    else:
        print("你出生在大城市,你父母是大学教授")
        iq += 2
elif 4 <= home <= 6:
    # 第三档
    if point == 1:
        print("你出生在三线城市,父母是医生")
        strong += 1
    elif point == 2:
        print("你出生在镇上,父母是教师")
        iq += 1
    else:
        print("你出生在镇上,你父母是个体户")
        home += 1
else:
    # 第四档
    if point == 1:
        print("你出生在农村,父母是辛苦劳作的农民")
        strong += 1
        face -= 2
    elif point == 2:
        print("你出生在穷乡僻壤,父母是无业游民")
        home -= 1
    else:
        print("你出生在镇上,你父母感情不和")
        strong -= 1
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")

# 幼年阶段~
# 先试用一个循环,按照年龄,从 1 循环到 10
# 针对每一年,都生成一个随机数~ [1,3]
# 根据角色,性别,年龄,各种属性
for age in range(1, 11):
    # 把一整年的打印都整理在字符串中,在这一年的结尾统一打印
    info = f"你今年{age}岁."
    # 生成一个[1,3]的随机整数
    point = random.randint(1, 3)
    # 接下来编写各种事件的代码
    # 性别触发的事件
    if gender == 'girl' and home <= 3 and point == 1:
        info += '你的家里人重男轻女思想落后,你被遗弃了!'
        print(info)
        print("游戏结束!")
        sys.exit(0)
    # 体质触发的事件
    elif strong < 6 and point < 3:
        info += "你生了一场病!"
        if home >= 5:
            info += "你在父母的悉心照料下,你康复了!"
            strong += 1
            home -= 1
        else:
            info += "你的父母没精力管你,你的身体状况更糟糕了!"
            strong -=1
    # 颜值触发的事件
    elif face <= 4 and age >= 7:
        info += "你长得太丑了,别的小朋友不喜欢你."
        if iq > 5:
            info += "你决定用学习填充自己."
            iq += 1
        else:
            if gender == 'boy':
                info += "你和别的小朋友经常打架"
                strong += 1
                iq -= 1
            else:
                info += "你经常被别的小朋友欺负!"
                strong -= 1
    # 智商触发的事件
    elif iq < 5:
        info += "你看起来傻傻的!"
        if home >= 8 and age >= 6:
            info += "你父母把你送到给好的学校学习."
            iq += 1
        elif 4 <= home <= 7:
            if gender =='boy':
                info += "你的父母鼓励你多运动,争取称为运动员!"
                strong += 1
            else:
                info += "你的父母让你多打扮自己"
                face += 1
        else:
            # 家境 < 4
            info += "你的父母经常吵架"
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                pass
    # 健康成长事件
    else:
        info += "你健康成长!"
        if point == 1:
            info += "你看起来更结实了!"
            strong += 1
        elif point == 2:
            info += "你看起来更好看了!"
            face += 1
        else:
            # 无事发生
            pass
    # 打印这一年发生的事情
    print(info)
    print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
    print("----------------------------------------------")
    # 为了方便观察,加一个小小的暂停操作
    time.sleep(1)